《LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation》
为减轻网上的信息过载,推荐系统已被广泛部署以执行个性化的信息过滤。推荐系统的核心是预测用户是否会和 item
进行交互,例如点击、评论、购买、以及其它形式的交互。因此,协同过滤(collaborative filtering: CF
)仍然是用于个性化推荐的基础(fundamental
)任务。其中, CF
专注于利用历史 user-item
交互来实现预测。
CF
最常见的范式是学习潜在特征(也称为 embedding
)来表示用户和 item
,并基于 embedding
向量进行预测。
矩阵分解是一种早期的此类模型,它直接将 user ID
直接映射到 user embedding
。
后来一些研究发现,利用用户的历史交互作为输入来增强(augmenting
)user ID
可以提高 embedding
的质量。例如:
SVD++
展示了用户历史交互在预测用户评分方面的好处。
Neural Attentive Item Similarity: NAIS
区分了历史交互中 item
的重要性,并显示了在预测 item ranking
方面的改进。
从 user-item
交互图(interaction graph
)来看,这些改进可以视为来自于用户子图结构(user subgraph structure
)(更具体而言,这子图结构就是用户的直接邻居)来改进 embedding learning
。
为了深化高阶邻居子图结构的使用,人们提出了 NGCF
从而为 CF
实现了SOTA
的性能。NGCF
从图卷积网络(Graph Convolution Network: GCN
)中汲取灵感,遵循相同的传播(propagation
)规则来 refine embedding
:特征变换(feature transformation
)、邻域聚合(neighborhood aggregation
)、非线性激活(nonlinear activation
)。
尽管 NGCF
已经显示出有希望的结果,但是LightGCN
的作者认为NGCF
的设计相当沉重(heavy
)和冗余(burdensome
):很多操作毫无理由地直接从 GCN
继承下来(而并没有对 GCN
进行彻底的理论研究和消融分析)。因此,这些操作不一定对 CF
任务有用。具体而言,GCN
最初是针对属性图(attributed graph
)上的节点分类(node classification
)任务提出的,其中每个节点都有丰富的属性作为输入特征。而在 CF
的 user-item
交互图中,每个节点(user
或者 item
)仅由一个 one-hot ID
来描述,除了作为标识符之外没有任何具体的语义。在这种情况下,给定 ID embedding
作为输入,执行多层非线性特征变换(这是现代神经网络成功的关键)不会带来任何好处,反而会增加模型训练的难度。
为了验证这一想法(即NGCF
中的这些操作不一定对 CF
任务有用),在论文 《LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation》
中,作者对 NGCF
进行了广泛的消融研究。通过严格的控制实验(在相同的数据集拆分和评估协议上),作者得出结论:从 GCN
继承的两个操作,特征转换和非线性激活,对 NGCF
的有效性(effectiveness
)没有贡献。更令人惊讶的是,删除这两个操作会显著提高准确性(accuracy
)。这反映了在图神经网络中添加对目标任务无用(useless
)操作的问题:不仅没有带来任何好处,反而降低了模型的有效性。
受到这些经验发现的启发,作者提出了一个名为 LightGCN
的新模型,其中仅包括 GCN
最重要的组件(component
)用于协同过滤 ,即:邻域聚合。具体而言:
在将每个用户(item
)和 ID embedding
关联之后,模型在 user-item
交互图上传播 embedding
来 refine
这些 embedding
。
然后,模型将不同传播层(propagation layer
)学习的 embedding
以加权和的方式聚合,从而获得用于预测的最终 embedding
。
整个模型简单而优雅,不仅更容易训练,而且比 NGCF
和其它 SOTA
方法(如 Mult-VAE
)获得了更好的实验性能。
总而言之,论文的主要贡献如下:
经验表明:GCN
两种常见设计,特征变换和非线性激活,对协同过滤的有效性没有正面影响。
论文提出了 LightGCN
,它通过仅包含 GCN
中最重要的组件进行推荐,从而在很大程度上简化了模型设计。
论文通过遵循相同的实验 setting
,在实验中对比了 LightGCN
和 NGCF
,并展示了实质性的提升。
论文还从技术和经验两个角度对 LightGCN
的合理性进行了深入分析。
相关工作:
协同过滤:协同过滤(Collaborative Filtering: CF
)是现代推荐系统中的一种流行技术。
CF
模型的一种常见范式是将用户和 item
参数化为 embedding
,并通过重建历史 user-item
交互来学习 embedding
参数。早期的 CF
模型,如矩阵分解(matrix factorization: MF
)将用户(或 item
)的 ID
映射到 embedding
向量中。最近的神经推荐模型如 NCF
和 LRML
使用相同的 embedding
组件,但是同时增强了基于神经网络的交互建模(interaction modeling
)。
除了仅使用 ID
信息之外,另一种类型的 CF
方法将历史 item
视为用户已经存在(pre-existing
)的特征,从而实现更好的 user representation
。例如,FISM
和 SVD++
使用历史 item
的 ID embedding
的加权均值作为目标用户的 embedding
。最近,研究人员意识到历史 item
对塑造个人兴趣有不同的贡献。为此,人们引入了注意力机制来捕获不同的贡献,如 ACF
和 NAIS
,从而自动学习每个历史 item
的重要性。当以 user-item
二部图的形式重新审视历史交互时,性能的提高可以归因于局部邻域(一阶邻域)的编码,这可以改进 embedding learning
。
即,将历史
item
视为用户行为特征,这是一种二部图上的局部邻域编码技术。
用于推荐的图方法:另一个相关的研究方向是利用 user-item
图结构进行推荐。
之前的工作,如 ItemRank
,使用标签传播机制(label propagation mechanism
)在图上直接传播用户偏好分(user preference score
),即鼓励相连的节点具有相似的 label
。最近出现的图神经网络( graph neural network: GNN
)揭示了图结构建模,尤其是高阶邻居,从而指导 embedding learning
。
早期的研究定义了谱域(spectral domain
)上的图卷积,例如拉普拉斯特征分解(Laplacian eigen-decomposition
)(《Spectral Networks and Locally Connected Networks on Graphs 》
)和切比雪夫多项式(Chebyshev polynomial
)(《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》
),但是它们的计算成本很高。
后来,GraphSage
和 GCN
重新定义了空域(spatial domain
)中的图卷积,即聚合邻域的 embedding
从而 refine
目标节点的 embedding
。由于其可解释性(interpretability
) 和效率(efficiency
),它们很快成为 GNN
的流行公式并被广泛使用。
受图卷积力量的推动,NGCF
、GC-MC
、PinSage
等最近的努力使得 GCN
适应于 user-item
交互图,并捕获高阶邻域中的 CF
信号从而进行推荐。
值得一提的是,最近的一些努力提供了对 GNN
的深入洞察(insight
),这激发了我们开发 LightGCN
。具体而言,《Simplifying Graph Convolutional Networks》
认为 GCN
不必要的复杂性,通过移除非线性、并将多个权重矩阵融合为一个从而开发简化的 GCN
(simplified GCN: SGCN
)模型。LightGCN
和 SGCN
的一个主要区别是:它们是针对不同的任务开发的,因此模型简化的合理性是不同的。具体而言:
SGCN
用于节点分类,对模型的可解释性和效率进行了简化。
相比之下,LightGCN
用于协同过滤,其中每个节点只有一个 ID
特征。因此,我们执行简化的理由更充分:非线性和权重矩阵对于 CF
毫无用处,甚至会损害模型训练。
对于节点分类准确性,SGCN
与 GCN
相当(有时弱于)。对于 CF
准确性,LightGCN
的性能大大优于 GCN
(比 NGCF
提高了 15%
以上)。
最后,同时进行的另一项工作 《Revisiting Graph based Collaborative Filtering: A Linear Residual Graph Convolutional Network Approach》
也发现非线性在 NGCF
中是不必要的,并为 CF
开发了线性 GCN
模型。相比之下,我们的 LightGCN
更进了一步:我们删除了所有冗余参数,仅保留了 ID embedding
,使模型像 MF
一样简单。
我们首先介绍 NGCF
,这是一个具有代表性的、SOTA
的 GCN
推荐模型。然后我们对 NGCF
进行消融研究,以判断 NGCF
中每个操作的有效性。本节的贡献是表明 GCN
中的两种常见操作,特征转换和非线性激活,对协同过滤没有正面影响。
首先每个用户和每个 item
都关联一个 ID embedding
。令 ID embedding
、item
ID embedding
。NGCF
利用 user-item
交互图来传播 embedding
,即:
其中:
item
refined embedding
。
item
集合,item
user
集合。
通过传播 NGCF
得到了 embedding
embedding
item
。
然后 NGCF
拼接这 embedding
从而获得最终的 user embedding
和 item embedding
,并使用内积来生成预估分。
NGCF
很大程度上遵循了标准的 GCN
,包括使用非线性激活函数
在半监督节点分类任务中,每个节点都有丰富的语义特征作为输入,例如一篇文章的标题和关键词。因此,执行多层非线性变换有利于特征学习。
然而在协同过滤中, user-item
交互图的每个节点只有一个id
作为输入,没有具体的语义。在这种情况下,执行多层非线性变换无助于学习更好的特征。
更糟糕的是,执行多层非线性可能会增加训练的难度。接下来我们将提供实验的证据。
我们对 NGCF
进行消融研究,从而探索非线性激活和特征变换的影响。我们使用 NGCF
作者发布的代码,在相同的数据集拆分和评估协议上运行实验,以保持尽可能公平地比较。
由于 GCN
的核心是通过传播来 refine embedding
,因此我们对相同 embedding size
下的 embedding
质量更感兴趣。因此,我们将获得最终 embedding
的方式从拼接(即 NGCF
的性能影响不大,但是使得以下消融研究更能够表明 GCN
的 refined embedding
质量。
我们实现了 NGCF
的三个简化的变体:
NGCF-f
:删除特征变换矩阵
NGCF-n
:删除非线性激活函数
NGCF-fn
:同时删除特征变换矩阵和非线性激活函数。
对于这三个变体,我们保持所有超参数(例如学习率、正则化系数、dropout rate
等等)和 NGCF
的最佳配置相同。
我们在下表中报告了 Gowalla
和 Amazon-Book
数据集上 2-layer setting
的结果。可以看到:
删除特征变换(即 NGCF-f
)导致在所有三个数据集上对 NGCF
的持续提升。
相比之下,删除非线性激活函数(即 NGCF-n
)不会对准确性accuracy
产生太大影响。
如果我们同时删除特征变换矩阵和非线性激活函数(即 NGCF-fn
),那么性能会得到显著提高。
根据这些观察,我们得出以下结论:
添加特征变换对 NGCF
产生负面影响,因为在 NGCF
和 NGCF-n
这两个模型中删除特征变换(即 NGCF-f
和 NGCF-fn
)显著提高了性能。
添加非线性激活函数在包含特征变换时影响很小(NGCF vs NGCF-n
),但是在禁用特征变换时会产生负面影响(NGCF-f vs NGCF-fn
)。
总体而言,特征变换和非线性激活函数对 NGCF
产生了相当负面的影响。因为通过同时移除它们,NGCF-fn
表现出比 NGCF
的巨大提升(召回率相对提高 9.57%
)。
为了更深入地了解表中获得的分数,以及理解为什么 NGCF
在这两种操作下(特征变换和非线性激活)恶化,我们在下图中绘制了训练损失和测试 recall
。
可以看到:
在整个训练过程中,NGCF-fn
的训练损失要比 NGCF, NGCF-f, NGCF-n
低得多。
NGCF-fn
的训练损失和测试的 recall
曲线保持一致,并且这种较低的训练损失成功地转化为更好的推荐准确性。
NGCF
和 NGCF-f
之间的比较显式了类似的趋势,只是提升幅度较小。
从上述证据中我们可以得出结论:NGCF
的性能恶化源于训练难度,而不是过拟合。
从理论上讲,NGCF
比 NGCF-f
具有更强的表示能力,因为将权重矩阵 NGCF-f
模型。然而在实践中,NGCF
表现出比 NGCF-f
更高的训练损失和更差的泛化性能。非线性激活的加入进一步加剧了表示能力和泛化性能之间的差异。
NGCF
相比NGCF-f
更高的训练损失,这就是训练难度的表现。理论上NGCF
的模型容量更大,那么训练损失应该更低。假如NGCF
模型的训练损失更低、但是测试auc
反而更差,那么就是过拟合的表现。
为了完善这一部分内容,我们主张在设计推荐模型时,进行严格的消融研究以明确每个操作的影响是非常重要的。否则,包含不太有用的操作会使得模型不必要地复杂化、增加模型训练难度、甚至降低模型的有效性。
前述分析表明:NGCF
是一种用于协同过滤的沉重的、冗余的 GCN
模型。在这些发现的推动下,我们设定了一个目标,即通过包含 GCN
最基本的组件进行推荐从而开发一个轻量(light
)而有效(effective
)的模型。简单的模型具有以下优势:更容易解释、更容易训练和维护、技术上更容易分析模型行为并将其修改为更有效的方向,等等。
在这一部分,我们首先展示我们设计的 Light Graph Convolution Network: LightGCN
模型,如下图所示。在 LightGCN
中,仅对前一层邻居的 embedding
执行归一化求和(normalized sum
) 。所有其它操作,如自连接( self-connection
)、特征转换、非线性激活等等,都被删除。这在很大程度上简化了 GCN
。在 Layer Combination
中,我们对每一层的 embedding
求和以获得最终 representation
。
然后我们对 LightGCN
进行深入分析,以展示其简单设计背后的合理性。最后我们描述了如何针对推荐来进行模型训练。
GCN
的基本思想是通过在图上平滑特征来学习节点的 representation
。为了实现这一点,它迭代式地执行图卷积(graph convolution
),即将邻居的特征聚合为目标节点的新 representation
。这种邻域聚合可以抽象为:
其中 representation
。
很多工作都提出了 GIN
中的 weighted sum
聚合器、GraphSAGE
中的 LSTM
聚合器、BGNN
中的bilinear interaction
聚合器等等。然而,大多数工作都将特征转换或非线性激活与 graph classification
)任务上表现良好,但是它们可能对协同过滤造成负担(参考前面的初步分析结果)。
Light Graph Convolution: LGC
:在 LightGCN
中,我们采用简单的加权和聚合器,删除了特征变换和非线性激活。LightGCN
中的图卷积操作定义为:
对称的归一化项 GCN
的设计,这样可以避免 embedding
的幅度(即向量的幅长)随着图卷积运算而增加。这里也可以应用其它选择,如
值得注意的是:在 LGC
中,我们只聚合相连的邻居,没有聚合目标节点本身(即自连接)。这和大多数现有的图卷积操作不同,现有的图卷积通常聚合扩展的邻域(包含节点自身)并需要专门处理自连接。这是因为:层组合操作(layer combination operation
)本质上捕获了和自连接相同的效果,因此在 LGC
中没有必要包含自连接。
关于层组合操作的内容接下来介绍,并且我们还将证明层组合操作和自连接本质上是相同的效果。
层组合和模型预测(Layer Combination and Model Prediction
):在 LightGCN
中,唯一可训练的模型参数是第 0
层的 embedding
,即所有用户的 item
的 embedding
时,可以通过 LGC
计算更高层的 embedding
。
在 LGC
之后,我们进一步结合在每一层获得的 embedding
,从而得到最终的 user representation
和最终的 item representation
:
其中 embedding
在构成final embedding
中的重要性。它可以被视为要手动调优的超参数,也可以被视为要自动优化的模型参数。在我们的实验中,我们发现将 LightGCN
并保持其简单性。
和
NGCF
采用多层embedding
的拼接聚合不同,LightGCN
采用多层embedding
的加权和聚合。
我们执行层组合(layer combination
)从而获得final representation
的原因有三个:
随着层数的增加,embedding
会过度平滑(over-smooth
)。因此,简单地使用最后一层是有问题的。
不同层的 embedding
捕获不同的语义。例如,第一层对有交互的用户和 item
强制执行平滑,第二层平滑与交互item
(用户)重叠的用户(item
),更高层捕获更高阶的邻近性(proximity
)。因此,将它们组合起来将使得representation
更加全面。
将不同层的 embedding
以加权和的方式组合,可以捕捉到带自连接的图卷积的效果,这是 GCN
中的一个重要技巧。
模型预测被定义user final representation
和 item final representation
的内积:
矩阵形式:我们提供了 LightGCN
的矩阵形式,以便于实现以及和现有模型的讨论。
假设 user-item
交互矩阵为 item
数量。如果用户 item
user-item
交互图的邻接矩阵为:
令第0
层的 embedding
矩阵为 embedding size
。则我们可以得到 LGC
的矩阵等价形式为:
其中
最后,我们得到用于模型预测的final embedding
矩阵为:
.
我们进行模型分析以证明 LightGCN
简单设计背后的合理性。
首先我们讨论了与 Simplified GCN
的联系,这是最近的一个线性 GCN
模型,它将自连接集成到图卷积中。这个分析表明通过层组合,LightGCN
包含了自连接的效果。因此,LightGCN
不需要在邻接矩阵中加入自连接。
然后我们讨论和 Approximate Personalized Propagation of Neural Predictions: APPNP
的联系,这是最近的一个 GCN
变体,它通过从 Personalized PageRank
的启发来解决过度平滑问题。这个分析表明了 LightGCN
和 APPNP
之间的潜在等效性。因此,我们的 LightGCN
在具有可控过度平滑(controllable oversmoothing
)的长距离传播方面享受同样的好处。
最后,我们分析了第二层 LGC
,以展示它如何平滑用户及其二阶邻居。这为 LightGCN
的工作机制提供更多的洞察(insights
)。
与 SGCN
的关联:在论文 《Simplifying Graph Convolutional Networks》
中,作者论证了GCN
对节点分类的不必要的复杂性,并提出了 SGCN
。SGCN
通过删除非线性并将权重矩阵压缩为一个权重矩阵来简化 GCN
。SGCN
中的图卷积定义为:
其中
在下面的分析中,为简单起见,我们省略了 embedding
执行缩放re-scale
。
在 SGCN
中,最后一层得到的 embedding
用于下游预测任务,可以表示为:
其中
上述推导表明:将自连接插入到 embedding
,本质上等效于在每个 LGC
层传播的 embedding
的加权和。
添加自连接相当于将每一层的
embedding
向更高层传播,此时最后一层embedding
隐含了各层的embedding
信息。这相当于不带自连接的、LGC
的各层embedding
的直接聚合。
和 APPNP
的关联:在最近的一项工作 《Predict then propagate: Graph neural networks meet personalized pagerank》
中,作者将 GCN
和Personalized PageRank
联系起来,从中得到启发,并提出一个叫做 APPNP
的 GCN
变体。该变体可以在没有过度平滑(oversmoothing
)风险的情况下进行长距离传播。
受到Personalized PageRank
中的传送设计(teleport design
)的启发,APPNP
用起始特征(starting feature
)(即第0
层embedding
)补充每个传播层,这可以平衡(balance
)保留局部性(locality
)(即靠近根节点以减轻过度平滑)和利用大的邻域的信息的需要。
APPNP
中的传播层定义为:
其中 teleport probability
,
在 APPNP
中,最后一层用于最终预测,即:
我们可以看到:通过相应的设置 LightGCN
可以完全恢复 APPNP
使用的预测 embedding
。因此,LightGCN
在对抗过度平滑方面具有 APPNP
的优势:通过适当地设置 controllable oversmoothing
)的长程(long-range
)建模。
另一个细微的区别是:APPNP
在邻接矩阵中添加了自连接。然而,正如我们之前所展示的,由于LightGCN
采用了不同层 embedding
的加权和,因此自连接是冗余的。
二阶 embedding
的平滑性:由于 LightGCN
的线性和简单性,我们可以深入了解它如何平滑 embedding
。这里我们分析一个两层 LightGCN
来证明其合理性。
以用户侧为例,直观地,第二层平滑了在交互 item
上有重叠 (overlap
) 的所有用户。具体而言,我们有:
可以看到,如果另一个用户 item
,那么 smoothness strength
)由以下系数来衡量:
如果 item
,那么该系数为零。
这个系数相当容易解释:二阶邻居
共同交互 item
的数量(即:
共同交互item
的流行度(popularity
)(即:
用户
这种可解释性很好地满足了 CF
在度量用户相似性时的假设,并证明了 LightGCN
的合理性。
由于 LightGCN
公式的对称性,我们可以在 item
方面得到类似的分析。
LightGCN
和 SGCN
的一个主要区别在于:LightGCN
和 SGCN
是针对不同的任务开发的,因此模型简化的合理性是不同的。具体而言:SGCN
用于节点分类,对模型的可解释性和效率进行简化。相比之下,LightGCN
用于协同过滤CF
,其中每个节点只有一个 ID
特征。因此我们做简化的理由更充分:非线性和权重矩阵对于协同过滤毫无用处,甚至会损害模型训练。
LightGCN
的可训练参数只是第 0
层的 embedding
,即 matrix factorization: MF
)相同。
我们采用贝叶斯个性化排序(Bayesian Personalized Ranking
)损失函数。BPR loss
是一种 pairwise loss
,它 鼓励观察到的 item
的预测高于未观察到的对应 item
:
其中
我们采用 Adam
优化器,并以 mini-batch
的方式优化。
我们知道其它可能会改进 LightGCN
训练的高级负采样策略,如hard
负采样和对抗采样(adversarial sampling
)。我们把这个扩展放在未来,因为它不是这项工作的重点。
注意,我们没有引入 GCN
和 NGCF
中常用的 dropout
机制。原因是我们在 LightGCN
中没有特征变换权重矩阵,因此在 embedding
层上执行 LightGCN
简单性的优点:比 NGCF
更容易训练和调优。
NGCF
需要额外地调优两个 dropout rate
(node dropout
和 message dropout
),并将每层的 embedding
归一化为单位长度。
还可以学习层的组合系数
活跃用户具有大量的一阶
item
邻居,因此使用低阶邻居就可以得到良好的用户representation
;稀疏用户具有很少的一阶item
邻居,因此需要高阶邻居来补充从而得到更好的用户representation
。
然而,我们发现在训练数据上学习 《λOpt: Learn to Regularize Recommender Models in Finer Levels》
的启发,它在验证数据上学习超参数。我们发现性能性能略有提升(小于 1%
)。
我们将探索 item
来进行个性化)作为未来的工作。
我们首先描述实验设置,然后和 NGCF
进行详细比较。NGCF
是和 LightGCN
最相关、但是更复杂的方法。接下来我们将 LightGCN
和其它 SOTA
方法进行比较。为了证明 LightGCN
中的设计合理性并揭示其有效的原因,我们进行了消融研究和 embedding
分析。最后我们研究了超参数。
数据集:为了减少实验工作量并保持公平的比较,我们密切遵循 NGCF
工作的配置。我们从 NGCF
作者那里获取了实验数据集(包括训练集、测试集的拆分),其统计数据如下表所示。
Gowalla
和 Amazon-Book
和 NGCF
论文中使用的完全一致,因此我们直接使用 NGCF
论文中的结果。
唯一的例外是 Yelp 2018
数据集,这是一个修订版本。根据NGCF
作者的说法,之前的版本没有过滤掉测试集中的冷启动item
,他们只向我们分享了修订版本。因此,我们在 Yelp 2018
数据集上重新运行了 NGCF
。
评估指标是由 all-ranking
协议(用户的所有未交互的 item
都是候选 item
)计算的 recall@20
和 ndcg@20
。
对比方法:主要的对比方法是 NGCF
,其表现优于多种方法,包括基于 GCN
的模型 GC-MC, PinSage
、基于神经网络的模型 NeuMF, CMN
、以及基于分解的模型MF, Hop-Rec
。由于比较是在相同评估协议下的相同数据集上进行的,因此我们没有进一步和这些方法进行比较(仅仅比较了 NGCF
)。
我们还进一步比较了两种相关的、且具有竞争力的 CF
方法:
Mult-VAE
:这是一种基于变分自编码器(variational autoencoder: VAE
)的、基于 item
的 CF
方法。它假设数据是从多项式分布中生成的,并使用变分推断(variational inference
)进行参数估计。
我们运行作者发布的代码,并在 [0, 0.2, 0.5]
中调优 dropout rate
、在 [0.2, 0.4, 0.6, 0.8]
中调优 600 -> 200 -> 600
。
GRMF
:该方法通过添加图拉普拉斯正则化器(graph Laplacian regularizer
)来平滑矩阵分解。为了公平地比较 item
推荐,我们将评分预测损失调整为 BPR loss
。
GRMF
的目标函数为:
其中 LightGCN
相同。
此外,我们还比较了一个给拉普拉斯图增加归一化的变体:
这被称作 GRMF-norm
。这两种 GRMF
方法通过拉普拉斯正则化器在训练中引入 embedding
平滑(测试时还是原始的 embedding
而没有平滑),而我们的 LightGCN
在预测模型中实现了 embedding
平滑。
超参数配置:
与 NGCF
相同,所有模型的 embedding
大小固定为 64
,embedding
参数使用 Xavier
方法初始化。
我们使用 Adam
优化器优化 LightGCN
,并使用默认的学习率 0.001
和默认的 batch size = 1024
(在 Amazon-Book
上,我们将 batch size
增加到 2048
以提高训练速度)。
层组合系数
我们在 1 ~ 4
的范围内测试
早停和验证策略与 NGCF
相同。通常,1000
个 epoch
足以让 LightGCN
收敛。
我们的实现在 TensorFlow
和 PyTorch
中都可用。
与NGCF
比较:我们与 NGCF
进行了详细的比较,下表中记录了不同层(1
层到 4
层)的性能,还显示了每个指标的相对提升比例。其中NGCF
在 Gowalla
和 Amazon-Book
上的结果来自于 NGCF
原始论文。
我们在下图中进一步绘制了training loss
和 testing recall
的训练曲线(training curves
),从而揭示 LightGCN
的优势,并明确训练过程。训练曲线是每隔 20
个 epoch
收集一次训练损失和测试召回率。Yelp2018
结果的趋势和 Gowalla/Amazon-Book
相同,因为篇幅有限这里忽略Yelp2018
的结果曲线。
可以看到:
在所有情况下,LightGCN
的表现都远远超过 NGCF
。
例如在 Gowalla
数据集上,NGCF
论文中报告的最高召回率为 0.1570
,而我们的 LightGCN
在 4
层设置下可以达到 0.1830%
,高出 16.56%
。
平均而言,三个数据集的召回率提高了 16.52%
、ndcg
提高了 16.87%
,这是相当显著的提升。
可以看到 LightGCN
的性能优于 NGCF-fn
。NGCF-fn
是删除特征变换和非线性激活的 NGCF
变体。由于 NGCF-fn
仍然包含比 LightGCN
更多的操作(如,自连接、图卷积中 user embedding
和 item embedding
之间的交互、dropout
),这表明这些操作对于 NGCF-fn
也可能是无用的。
增加层数可以提高性能,但是增益会逐渐减少。一般的观察是:将层数从 0
(即矩阵分解模型)增加到 1
会导致最大的性能增益,并且在大多数情况下使用 3
层会导致令人满意的性能。这一观察结果和 NGCF
的发现一致。
在训练过程中,LightGCN
始终获得较低的训练损失,这表明 LightGCN
比 NGCF
更容易拟合训练数据。此外,较低的训练损失成功地转化为更好的测试准确性(accuracy
),这表明了 LightGCN
强大的泛化能力。
相比之下,NGCF
较高的训练损失和较低的测试准确性反映了训练好如此重型heavy
的模型的实际难度。
注意,在图中我们显示了两种方法在最佳超参数设置下的训练过程。虽然提高 NGCF
的学习率可以降低其训练损失(甚至低于 LightGCN
),但是无法提高测试召回率,因为以这种方式降低训练损失只能为 NGCF
找到无效解 (trivial solution
)。
和 SOA
模型的比较:下表给出了LightGCN
和其它baseline
方法的性能比较。我们展示了我们可以为每种方法获得的最佳得分。
可以看到:
LightGCN
在所有三个数据集上始终优于其它方法,证明了其简单而合理的设计的有效性。
注意:LightGCN
可以通过调整 over-tuning
)。
在所有 baseline
中:
Mult-VAE
表现出最强的性能,优于 GRMF
和 NGCF
。
GRMF
的性能与 NGCF
相当,优于 MF
,这表明使用拉普拉斯正则化器强制 embedding
平滑的效果。
通过在拉普拉斯正则化器中加入归一化,GRMF-norm
在 Gowalla
上优于 GRMF
、在 Yelp2018
和 Amazon-Book
上没有任何收益。
我们通过展示层组合(layer combination
)和对称的 sqrt
归一化如何影响 LightGCN
的性能来进行消融研究。
为了证明前面分析的 LightGCN
的合理性,我们进一步研究了 embedding smoothness
(这是 LightGCN
有效的关键原因)的影响。
层组合的影响:下图显示了 LightGCN
及其变体 LightGCN-single
的结果。其中 LightGCN-single
不使用层组合,即仅仅将 LightGCN
的最终预测。
由于篇幅有限,我们省略了 Yelp2018
上的结果,这与 Amazon-Book
显示出类似的趋势。可以看到:
聚焦 LightGCN-single
,我们发现:当层数从 1
增加到 4
时,它的性能先提升然后下降;在大多数情况下,峰值点在 2
层,然后迅速下降到 4
层这个最差点。
这一结果表明:使用一阶和二阶邻居来平滑节点的embedding
对于 CF
非常有用,而在使用高阶邻居时会遇到过度平滑的问题。
聚焦 LightGCN
,我们发现:它的性能随着层数的增加而逐渐提高。即使使用 4
层,LightGCN
的性能也不会下降。
这证明了layer combination
解决过度平滑的有效性,正如我们前面技术分析中(和 APPNP
的关联)所表述的那样。
比较这两种方法,我们发现: LightGCN
在 Gowalla
上的表现始终优于 LightGCN-single
,但是在 Amazon-Book
和 Yelp2018
上则不然(其中2
层 LightGCN-single
表现最好)。
对于这种现象,在得出结论之前需要注意两点:
LightGCN-single
是 LightGCN
的特例。如果将 LightGCN
降级为 LightGCN-single
。
在 LightGCN
中,我们没有调优 LightGCN
性能的潜力。
对称 sqrt
归一化:在 LightGCN
中,我们在执行邻域聚合时对每个邻域 embedding
采用对称 sqrt
归一化
仅使用左侧目标节点的系数,即左侧归一化,用 -L
来表示。
仅使用右侧邻居节点的系数,即右侧归一化,用 -R
来表示。
使用 L1
归一化,即移除平方根,用 -L1
来表示。
注意,如果移除整个归一化本身,那么训练会变得数值不稳定,并且会受到 not-a-value:NAN
问题的影响,因此这里我们不会比较这个配置。
下表给出了3
层 LightGCN
的结果, 可以看到:
一般而言,最佳设置是使用对称 sqrt
归一化(即 LightGCN
的当前设计)。移除任何一侧都会大大降低性能。
次优设置是仅在左侧使用 L1
归一化,即 LightGCN-L1-L
,这相当于通过 in degree
将邻接矩阵归一化为随机矩阵(stochastic matrix
)。
两侧对称归一化有助于 sqrt
归一化(即 LightGCN vs LightGCN-L/LightGCN-R
),但是会降低 L1
归一化的性能(即 LightGCN-L1 vs LightGCN-L1-L/LightGCN-L1-R
)。
Embedding Smoothness
分析:正如我们在前面分析的那样,一个 2
层 LightGCN
根据用户交互 item
上重叠(overlap
)的用户来平滑用户的 embedding
,两个用户之间的平滑强度(smoothing strength
)
我们推测这种 embedding
平滑是 LightGCN
有效性的关键原因。为了验证这一点,我们首先将用户 embedding
的平滑性定义为:
其中 embedding
的 L2
范数用于消除 embedding
幅度(scale
)的影响。
类似地,我们可以获得 item embedding
的平滑性定义。
理论上如果两个用户平滑强度 smoothness loss
),该值越小那么embedding
越平滑。
下表显式了矩阵分解(即使用 2
层的 LightGCN-single
(即使用 2
层 LightGCN-single
在推荐准确性方面远远超过 MF
。
可以看到:LightGCN-single
的平滑性损失远远低于 MF
。这表明,通过进行 light graph convolution
,embedding
变得更平滑、更适合用于推荐。
当 LightGCN
应用于新数据集时,除了标准的超参数学习率之外,最重要的超参数是 L2
正则化系数 2
层的 LightGCN
的性能针对超参数
LightGCN
对 LightGCN
也比 NGCF
要好。而 NGCF
额外使用 dropout
来防止过拟合。
这表明 LightGCN
不太容易过拟合,因为 LightGCN
中唯一可训练的参数是第 0
层的 ID embedding
,所以模型很容易训练和正则化。
Yelp 2018
、Amazon-Book
、Gowalla
数据集上,
当
我们相信 LightGCN
的洞察对推荐模型的未来发展具有启发意义。随着链接图数据 linked graph data
在实际应用中的流行,基于图的模型在推荐中变得越来越重要。通过显式地利用预测模型中实体之间的关系,基于图的模型优于传统的监督学习方案(如隐式利用实体之间关系的分解机 FM
)。
例如,最近的一个趋势是利用辅助信息,如 item
知识图、社交网络、多媒体内容,从而进行推荐。在这个过程中,GCN
已经建立了 SOTA
技术。然而,这些模型也可能会遇到 NGCF
的类似问题,因为 user-item
交互图也由相同的、可能不必要的神经操作建模。我们未来计划在这些模型中探索 LightGCN
的思想。
另一个未来的方向是个性化层组合权重
最后,我们将进一步探索 LightGCN
简单性的优势,研究非采样回归损失(non-sampling regression loss
)是否存在快速解决方案,并将其流式传输streaming
到在线工业场景。